package com.m.job.server.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.client.job.core.model.MJob;

import java.util.List;
import java.util.Set;

/**
 * Job - 数据库访问层
 * 
 * @author monxz
 * @version 2021-07-18
 */
@Mapper
public interface MJobMapper {

	/**
	 * 通过ID查询单条数据
	 *
	 * @param 主键
	 * @return 实例对象
	 */
	MJob get(String jobId);
	
	/**
	 * 根据JobCode
	 * @param jobCode
	 * @return
	 */
	MJob getByJobCode(String jobCode);

	/**
	 * 列表数据查询
	 *
	 * @param JobDetail 查询条件
	 * @return 对象列表
	 */
	List<MJob> getList(MJob JobDetail);

	/**
	 * 新增数据
	 *
	 * @param JobDetail 实例对象
	 * @return 影响行数
	 */
	Integer insert(MJob JobDetail);

	/**
	 * 修改数据
	 *
	 * @param JobDetail 实例对象
	 * @return 影响行数
	 */
	Integer update(MJob JobDetail);

	/**
	 * 删除
	 *
	 * @param MJob 实例对象
	 * @return 影响行数
	 */
	Integer delete(String jobId);

	/**
	 * 列表数据查询(全等查询)
	 *
	 * @param JobDetail 查询条件
	 * @return 对象列表
	 */
	List<MJob> getExctList(MJob JobDetail);

	/**
	 * 减少一个分片书
	 * 
	 * @param jobId
	 * @return
	 */
	Integer lessenAppcout(Set<String> jobIdList);
	
	/**
	 * 减少运行实例
	 * @param jobId
	 * @param count
	 * @return
	 */
	Integer lessAppCounts(@Param("jobId") String jobId,@Param("count") Integer count);
	
	/**
	 * 查询
	 * @param jobIdList
	 * @return
	 */
	List<MJob>  getListByIds(Set<String> jobIdList);
}